struct ex_global_data

{
	vector<int >* sig1;
	map<int,int >* sig2;
	unordered_map<int,int>* sig3;
	ex_global_data(vector<int >*  para1 = nullptr, map<int, int >*  para2 = nullptr, unordered_map<int, int>*  para3 = nullptr):sig1(para1), sig2(para2), sig3(para3)
	{}
};

int main()
{
	void* pq = nullptr;

	vector<int >sig1(10,0);
	map<int, int >ig2;
	unordered_map<int, int>sig3;
	
	pq = new ex_global_data(&sig1,&ig2);
	ig2.insert(pair<int,int>{ 1, 1 });
	ex_global_data *pq1 = static_cast<ex_global_data*>  (pq);  //必须要对void类型的指针进行转型才能使用    pq可作为某个基类的扩展功能
	ig2.insert(pair<int, int>{ 2, 1 });
}